import { useUserStore } from '@/store/user'
import { useConfigStore } from '@/store/config'
import { env, equ } from '@env'

/**
 * 诸葛io埋点
 */
export default function useTrack() {
  const appKey = '59a1abc8869b4dc89c6ebc77b24aee64'
  const appName = 'youling'
  /**
   * 开发环境不上报
   */
  if (env !== "production" && env !== 'test') {
    return {
      onLoad: () => {
        //
      },
      setTrack: () => {
        //
      },
      identify: () => {
        //
      }
    }
  }

  /**
   * 初始化
   */
  const onLoad = () => {
    window.zhuge.load(appKey, { //配置应用的AppKey
      superProperty: { //全局的事件属性(选填)
        'app_name': appName,
        source: equ, // 来源
        env // 环境
      },
      debug: false, //实时调试
      adTrack: false, //广告监测开关，默认为false
      zgsee: false, //视屏采集开关， 默认为false
      autoTrack: false, //启用全埋点采集（选填，默认false）
      singlePage: false //是否是单页面应用（SPA），启用autoTrack后生效（选填，默认false）
    });
  }

  /**
   * 发起统计
   */
  const setTrack = (option: LooseObject) => {
    const { appId, userId, sessionId } = useUserStore()
    const { name: app_id_name } = useConfigStore()
    const { name, ...others } = option
    window.zhuge.track(`${appName}_${name}`, {
      app_id: appId,
      app_id_name,
      user_id: userId,
      session_id: sessionId,
      ...others
    })
  }

  /**
   * 唯一身份标识
   */
  const identify = () => {
    const { userId } = useUserStore()
    window.zhuge.identify(`${appName}_${userId}`)
  }

  return {
    onLoad,
    setTrack,
    identify,
  }
}

